package com.ruoyix.flowable.domain.bo;

import com.ruoyix.common.core.validate.AddGroup;
import com.ruoyix.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import java.util.Date;

import com.ruoyix.common.core.domain.BaseEntity;

/**
 * 流程定义设置业务对象 bpm_task_assignee
 *
 * @author ruoyi
 * @date 2023-11-22
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class BpmTaskAssigneeBo extends BaseEntity {

    /**
     * id
     */
    private Long id;

    /**
     * 流程定义id
     */
    @NotBlank(message = "流程定义id不能为空", groups = { AddGroup.class, EditGroup.class })
    private String processDefinitionId;

    /**
     * 选择方式
     */
    private String chooseWay;

    /**
     * 流程节点id
     */
    @NotBlank(message = "流程节点id不能为空", groups = { AddGroup.class, EditGroup.class })
    private String nodeId;

    /**
     * 流程节点名称
     */
    @NotBlank(message = "流程节点名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String nodeName;

    /**
     * 节点key
     */
    @NotBlank(message = "流程定义key不能为空", groups = { AddGroup.class, EditGroup.class })
    private String processDefinitionKey;

    /**
     * 审批人员
     */
    @NotBlank(message = "审批人员不能为空", groups = { AddGroup.class, EditGroup.class })
    private String assignee;

    /**
     * 审批人员id
     */
    @NotBlank(message = "审批人员id不能为空", groups = { AddGroup.class, EditGroup.class })
    private String assigneeId;

    /**
     * 业务规则id
     */
    private Long businessRuleId;

    /**
     * 弹窗选人,0不弹,1弹窗
     */
//    @NotNull(message = "弹窗选人,0不弹,1弹窗不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long dialogAssignee;

    /**
     * 是否会签,0非会签,1会签
     */
//    @NotNull(message = "是否会签,0非会签,1会签不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long multiple;

    /**
     * 会签保存人员KEY值
     */
    private String multipleColumn;

    /**
     * 是否可退回,0不可退回,1可退回
     */
//    @NotNull(message = "是否可退回,0不可退回,1可退回不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long canBack;

    /**
     * 是否可委托,0不可委托,1可委托
     */
//    @NotNull(message = "是否可委托,0不可委托,1可委托不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long canDelegate;

    /**
     * 是否可抄送,0不可抄送,1可抄送
     */
//    @NotNull(message = "是否可抄送,0不可抄送,1可抄送不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long canCopy;

    /**
     * 是否可加签,0不可加签,1可加签
     */
//    @NotNull(message = "是否可加签,0不可加签,1可加签不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long canAddSignature;

    /**
     * 是否可减签,0不可减签,1可减签
     */
//    @NotNull(message = "是否可减签,0不可减签,1可减签不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long canReduceSignature;

    /**
     * 任务监听
     */
    private String taskListener;

    /**
     * 自动审批,0不自动办理,1自动办理
     */
    private Integer autoApproval;

    /**
     * 表单ID
     */
    private Long formId;

    /**
     * 表单类型
     */
    private Long formType;

    /**
     * 表单option信息
     */
    private String formOption;

    /**
     * 表单fields信息
     */
    private String formFields;

    /**
     * 自定义表单创建路径
     */
    private String formCustomCreatePath;

    /**
     * 自定义表单查看路径
     */
    private String formCustomViewPath;



}
